package Collections_;

import java.util.*;

/**
 * @author 王艺锡
 * @version 1.0
 * Collection工具类中方法的使用
 */
@SuppressWarnings({"all"})
public class Collections_ {
    public static void main(String[] argsq) {
        List list = new ArrayList();
        list.add("jack");
        list.add("yx");
        list.add("ly");
        list.add("tom");
        System.out.println(list);

        //1.逆序集合reverse
        Collections.reverse(list);
        System.out.println(list);

        //2.shuffle对集合数组随机排序
        Collections.shuffle(list);
        System.out.println(list);

        //3.sort自然排序(按照字符串大小)
        Collections.sort(list);
        System.out.println(list);
        //如果想要按照字符串的大小来排序，可以通过传入一个比较器来自定义
        Collections.sort(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return ((String) o1).length() - ((String) o2).length();
            }
        });
        System.out.println(list);


        //4.swap,指定集合中的i处的元素和j处的元素交换顺序
        Collections.swap(list, 2, 3);
        System.out.println(list);


        //5.max返回集合中按自然排序的最大值(先排序，再返回最后的最大值)
        System.out.println(Collections.max(list));
        //也可以通过比较器，返回自定义排序下的最大值
        Object maxObject = Collections.max(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return ((String) o1).length() - ((String) o2).length();
            }
        });
        System.out.println("长度最大的元素:" + maxObject);

        //6.min返回集合中按自然排序的最小值(先排序，再返回最后的最小值)
        System.out.println("字符串最小的元素:" + Collections.min(list));


        //7.frequency返回集合中指定元素出现的次数
        list.add("ly");
        System.out.println(Collections.frequency(list,"ly"));

        //8.copy将src集合中的数据拷贝到dest
        List dest = new ArrayList();
        //为了完成拷贝，需要先将dest集合的大小扩容到被拷贝集合的大小
        for (int i = 0;i<list.size();i++){
            dest.add("");
        }
        Collections.copy(dest,list);
        System.out.println(dest);

        //9.replaceAll指定某个元素替换
        Collections.replaceAll(list,"jack","杰克");
        System.out.println("替换后:" + list);
    }
}